<?php
//
//class DBAccess {
//
//    private $server;
//    private $username;
//    private $database;
//    private $connection;
//    private $debug = true;
//
//    function __construct( $server, $username, $password, $database ) {
//        $this->server = $server;
//        $this->username = $username;
//        $this->database = $database;
//
//        $this->connection = new mysqli( $server, $username, $password, $database ) or die("Could not connect to the server $username@$server/$database : ");
//        #mysql_query("set names 'utf8'");
//    }
//
//    function __destruct() {
//        $this->close();
//    }
//    //gets a single row from the db
//    public function get_single( $sql ) {
//        if ( func_num_args() > 1 ) {
//            $args = func_get_args();
//            array_shift($args);
//            $sqlArgs = $this->createSqlArgs($args);
//            array_unshift($sqlArgs, $sql);
//            $sql = call_user_func_array("sprintf", $sqlArgs);
//        }
//        if( $this->debug ) error_log("$sql\n");
//        $result = $this->connection->query( $sql );
//        $i = $result->fetch_row();
//        $result->free();
//        if( $i ) {
//            return $i[0];
//        } else {
//            return null;
//        }
//    }
//
//    //gets an object from the db similar to
//    public function get_object( $sql, $class_name = 'stdClass' ) {
//        if ( func_num_args() > 2 ) {
//            $args = func_get_args();
//            array_shift($args); // remove sql
//            array_shift($args); // remove class_name
//            $sqlArgs = $this->createSqlArgs($args);
//            array_unshift($sqlArgs, $sql);
//            $sql = call_user_func_array("sprintf", $sqlArgs);
//        }
//
//        $class_name = $class_name == null ? 'stdClass' : $class_name;
//        if( $this->debug ) error_log("$sql\n");
//        $result = $this->connection->query( $sql );
//        if( $result ) {
//            $obj = $result->fetch_object($class_name);
//            $result->free();
//            return $obj;
//        } else {
//            return null;
//        }
//    }
//
//    public function get_objects($sql, $class_name = 'stdClass') {
//        if ( func_num_args() > 2 ) {
//            $args = func_get_args();
//            array_shift($args); // remove sql
//            array_shift($args); // remove class_name
//            $sqlArgs = $this->createSqlArgs($args);
//            array_unshift($sqlArgs, $sql);
//            $sql = call_user_func_array("sprintf", $sqlArgs);
//        }
//
//        $class_name = $class_name == null ? 'stdClass' : $class_name;
//        if( $this->debug ) error_log("$sql\n");
//        $result = $this->connection->query( $sql );
//        $objects = array();
//        if( $result ) {
//            while ($obj = $result->fetch_object($class_name)) {
//                $objects[] = $obj;
//            }
//            $result->free();
//        }
//        return $objects;
//    }
//
//    public function insert( $sql ) {
//        if ( func_num_args() > 1 ) {
//            $args = func_get_args();
//            array_shift($args);
//            $sqlArgs = $this->createSqlArgs($args);
//            array_unshift($sqlArgs, $sql);
//            $sql = call_user_func_array("sprintf", $sqlArgs);
//        }
//        if( $this->debug ) error_log("$sql\n");
//        $result = $this->connection->query( $sql );
//        return $this->connection->insert_id;
//    }
//
//    public function update( $sql ) {
//        if ( func_num_args() > 1 ) {
//            $args = func_get_args();
//            array_shift($args);
//            $sqlArgs = $this->createSqlArgs($args);
//            array_unshift($sqlArgs, $sql);
//            $sql = call_user_func_array("sprintf", $sqlArgs);
//        }
//        if( $this->debug ) error_log("$sql\n");
//        return $this->connection->query( $sql );
//    }
//
//    public function close() {
//        if( $this->connection ) {
//            error_log("Closing connection.\n");
//            if( !$this->connection->close() ) {
//                error_log( 'Could not connect: ' . $this->get_error_message() . "\n" );
//            }
//            $this->connection = null;
//        }
//    }
//
//    private function createSqlArgs( $args ) {
//        $sqlArgs = array();
//        foreach( $args as $arg ) {
//            if( is_string($arg) ) {
//                $sqlArgs[] = $this->connection->real_escape_string($arg);
//            } else {
//                $sqlArgs[] = $arg;
//            }
//        }
//        return $sqlArgs;
//    }
//
//    function get_error_message() {
//        return $this->connection->error;
//    }
//}
//
//?>